
package Negocio;

import Datos.PrendaDB;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;


public class Prenda {
    private int codigo;
    private String descripcion;
    private String fecha_adquisicion;
    private int numero_usos;
    private Foto foto;
    private boolean es_usado;
    private Genero genero;
    private int num_lavadas;
    private Tipo id_tipo;
    private int num_usos_total;
    private boolean en_lavanderia;
    private String color;

    public Prenda(int codigo, String descripcion, String fecha_adquisicion, int numero_usos, Foto foto, boolean es_usado, Genero genero, int num_lavadas, Tipo id_tipo, int num_usos_total, boolean en_lavanderia, String color) {
        this.codigo = codigo;
        this.descripcion = descripcion;
        this.fecha_adquisicion = fecha_adquisicion;
        this.numero_usos = numero_usos;
        this.foto = foto;
        this.es_usado = es_usado;
        this.genero = genero;
        this.num_lavadas=num_lavadas;
        this.id_tipo=id_tipo;
        this.num_usos_total=num_usos_total;
        this.en_lavanderia=en_lavanderia;
        this.color=color;
    }

    public Prenda() {
    }

    
    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getFecha_adquisicion() {
        return fecha_adquisicion;
    }

    public void setFecha_adquisicion(String fecha_adquisicion) {
        this.fecha_adquisicion = fecha_adquisicion;
    }

    public int getNumero_usos() {
        return numero_usos;
    }

    public void setNumero_usos(int numero_usos) {
        this.numero_usos = numero_usos;
    }

    public Foto getFoto() {
        return foto;
    }

    public void setFoto(Foto foto) {
        this.foto = foto;
    }    

    public Genero getGenero() {
        return genero;
    }

    public void setGenero(Genero genero) {
        this.genero = genero;
    }

    public boolean isEs_usado() {
        return es_usado;
    }

    public void setEs_usado(boolean es_usado) {
        this.es_usado = es_usado;
    }

    public int getNum_lavadas() {
        return num_lavadas;
    }

    public void setNum_lavadas(int num_lavadas) {
        this.num_lavadas = num_lavadas;
    }

    public Tipo getId_tipo() {
        return id_tipo;
    }

    public void setId_tipo(Tipo id_tipo) {
        this.id_tipo = id_tipo;
    }

    public int getNum_usos_total() {
        return num_usos_total;
    }

    public void setNum_usos_total(int num_usos_total) {
        this.num_usos_total = num_usos_total;
    }

    public boolean isEn_lavanderia() {
        return en_lavanderia;
    }

    public void setEn_lavanderia(boolean en_lavanderia) {
        this.en_lavanderia = en_lavanderia;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }    
    
    
    public void grabar() {
        try {
            PrendaDB tip = new PrendaDB();
            tip.grabar(this);
            JOptionPane.showMessageDialog(null, "Datos Agregados");
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Faltan datos por ingresar");
        }
    }     
    
    public void buscar() {           
        try {
            Prenda aux;
            PrendaDB prendaDB = new PrendaDB();
            aux = prendaDB.buscar(this.codigo);        
            setDescripcion(aux.getDescripcion());
            setFecha_adquisicion(aux.getFecha_adquisicion());
            setNumero_usos(aux.getNumero_usos());
            setNum_usos_total(aux.getNum_usos_total());
            setFoto(aux.getFoto());
            setEs_usado(aux.isEs_usado());            
            setGenero(aux.getGenero());
            setNum_lavadas(aux.getNum_lavadas());
            setId_tipo(aux.getId_tipo());
            setEn_lavanderia(aux.isEn_lavanderia());
            setColor(aux.getColor());          
        } catch (SQLException ex) {
            //Logger.getLogger(Prenda.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "El usuario no posee esa prenda o no existe");
        }             
    }
    
    public void buscarCodigo(String cedula, int codigo) {           
        try {
            Prenda aux;
            PrendaDB prendaDB = new PrendaDB();
            aux = prendaDB.buscarCodigo(cedula, codigo);        
            setDescripcion(aux.getDescripcion());
            setFecha_adquisicion(aux.getFecha_adquisicion());
            setNumero_usos(aux.getNumero_usos());
            setNum_usos_total(aux.getNum_usos_total());
            setFoto(aux.getFoto());
            setEs_usado(aux.isEs_usado());            
            setGenero(aux.getGenero());
            setNum_lavadas(aux.getNum_lavadas());
            setId_tipo(aux.getId_tipo());
            setEn_lavanderia(aux.isEn_lavanderia());
            setColor(aux.getColor());          
        } catch (SQLException ex) {
            //Logger.getLogger(Prenda.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "El usuario no posee esa prenda o no existe");
        }             
    }
    
    public void buscarDescripcion(String cedula, String descripcion) {           
        try {
            Prenda aux;
            PrendaDB prendaDB = new PrendaDB();
            aux = prendaDB.buscarDescripcion(cedula, descripcion);        
            setCodigo(aux.getCodigo());
            setFecha_adquisicion(aux.getFecha_adquisicion());
            setNumero_usos(aux.getNumero_usos());
            setNum_usos_total(aux.getNum_usos_total());
            setFoto(aux.getFoto());
            setEs_usado(aux.isEs_usado());            
            setGenero(aux.getGenero());
            setNum_lavadas(aux.getNum_lavadas());
            setId_tipo(aux.getId_tipo());
            setEn_lavanderia(aux.isEn_lavanderia());
            setColor(aux.getColor());          
        } catch (SQLException ex) {
            //Logger.getLogger(Prenda.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "El usuario no posee esa prenda o no existe");
        }                
    }
    
    public void buscarFechaAdqui(String cedula, String fecha) {           
        try {
            Prenda aux;
            PrendaDB prendaDB = new PrendaDB();
            aux = prendaDB.buscarFechaAdqui(cedula, fecha); 
            setCodigo(aux.getCodigo());
            setDescripcion(aux.getDescripcion());            
            setNumero_usos(aux.getNumero_usos());
            setNum_usos_total(aux.getNum_usos_total());
            setFoto(aux.getFoto());
            setEs_usado(aux.isEs_usado());            
            setGenero(aux.getGenero());
            setNum_lavadas(aux.getNum_lavadas());
            setId_tipo(aux.getId_tipo());
            setEn_lavanderia(aux.isEn_lavanderia());
            setColor(aux.getColor());          
        } catch (SQLException ex) {
            //Logger.getLogger(Prenda.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "El usuario no posee esa prenda o fecha incorrecta(dd-mm-yyyy)");
        }                
    }    
}
